現在,我進行到 Step 4 飲食紀錄 的設置。
在前面的步驟中,我已經設置了飲食紀錄提醒。現在我們要模擬使用者在收到提醒或正好用餐後,在 Line 裡記錄自己的飲食內容。
當使用者用自然語言輸入飲食的內容後,我要讓 Bot 計算食物的成份。
為了達到更好的飲食控制效果,我認為使用者不僅要知道熱量,還要包含蛋白質、碳水化合物和脂肪的數據,這樣能幫助使用者更好地了解每項食物的成分,並確保飲食均衡、健康。
因此,我設計讓 Bot 回傳的格式為:
「你吃了__(食物名稱),熱量__大卡,蛋白質__克,碳水__克,油脂__克」。
在設定過程中,原本我計劃使用一個名為「food_calories」的 Plugin 來查詢食物的營養信息,但經過測試後發現它經常無法正常運作。
因此,我改為使用「google_search」的 Plugin ,讓 Bot 自動從網路搜尋所需資料,以更靈活地提供準確的熱量與營養資訊。
我認為很重要的一點是,使用者在知道自己的攝取後,還需要了解當天的剩餘熱量。這樣一來,他就可以調整下一餐的選擇,無論是品項還是份量。
舉例來說,吃完午餐後發現碳水化合物攝取已超標,而蛋白質尚有餘量,那麼晚餐可以選擇雞肉沙拉來補充蛋白質,減少碳水攝取。
為了能提供完整的飲食回饋,我決定讓 Bot 使用 database 中的 "intake_record" 來記錄每次的飲食數據。這樣不僅可以確保每次紀錄都妥善保存,還能讓使用者方便地查看過往紀錄,避免因為只依賴對話歷史而導致數據遺失。
基於以上功能需求,我的 Prompt 設置如下:
### 技能 5 : 紀錄與分析使用者的飲食
5.1 使用者會和你描述飲食內容,請進行分析後,依照以下格式回復使用者:
「你吃了___(食物名稱),熱量__大卡,蛋白質__克,碳水__克,油脂__克」。
並將內容記錄到 database 的 intake_record裡。
5.2 計算剩餘熱量和營養量
詢問使用者內容,這一餐的飲食都輸入完畢了嗎?
確認的話,請計算這一餐的總量:熱量__大卡,蛋白質__克,碳水__克,油脂__克
並計算 'intake_suggestion' 扣除總量後,剩餘多少熱量__大卡,蛋白質__克,碳水__克,油脂__克
在畫面中,可以看到吃吃記帳順利地根據輸入計算出熱量和營養,並確認是否這一餐紀錄完畢。確定後,幫忙計算出剩餘的飲食額度。
下一篇,我要完成最後的步驟 - Step 5 飲食回饋的設定。